/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is Forte for Java, Community Edition. The Initial * Developer of the Original Code is Sun Microsystems, Inc. Portions * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */ package org.openide.explorer.propertysheet.editors; import java.awt.*; import java.beans.*; import java.util.*; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; //import org.openide.compiler.ExternalCompiler; /** Outer class for editor over ExternalCompiler.ErrorExpression. */ public abstract class ExternalCompiler extends Object { private ExternalCompiler () {} /** Property editor for error expresions. */ public static class ErrorExpressionEditor extends PropertyEditorSupport { /** shared list of error expressions in the system * @associates ErrorExpression*/ private static Collection sharedList; static { sharedList = new HashSet (17); sharedList.add (org.openide.compiler.ExternalCompiler.JAVAC); sharedList.add (org.openide.compiler.ExternalCompiler.JIKES); sharedList.add (org.openide.compiler.ExternalCompiler.JVC); } /** list to use for error expressions * @associates Object*/ private java.util.Collection list; /** value to edit */ private org.openide.compiler.ExternalCompiler.ErrorExpression value; /** Constructs property editor with shared array of registered expressions. */ public ErrorExpressionEditor () { this (sharedList); } /** Constructs property editor given list of ErrorExpression. This list will be presented * to the user when the editor is used. Also the list is modified when user adds new * ErrorExpression. * * @param list modifiable collection of <CODE>ExternalCompiler.ErrorExpression</CODE> */ public ErrorExpressionEditor (java.util.Collection list) { this.list = list; } public Object getValue() { return value; } public void setValue(Object value) { synchronized (this) { this.value = (org.openide.compiler.ExternalCompiler.ErrorExpression)value; list.add (value); } firePropertyChange (); } public String getAsText() { return value.getName(); } public void setAsText(String string) { org.openide.compiler.ExternalCompiler.ErrorExpression[] exprs = getExpressions(); for (int i = 0; i < exprs.length; i++) { if (string.equals(exprs[i].getName())) { setValue (exprs[i]); break; } } } public String getJavaInitializationString() { return "new ExternalCompiler.ErrorExpression (" + // NOI18N value.getName () + ", " + // NOI18N value.getErrorExpression () + ", " + // NOI18N value.getFilePos () + ", " + // NOI18N value.getLinePos () + ", " + // NOI18N value.getColumnPos () + ", " + // NOI18N value.getDescriptionPos () + ")"; // NOI18N } public String[] getTags() { org.openide.compiler.ExternalCompiler.ErrorExpression[] exprs = getExpressions(); String[] tags = new String [exprs.length]; for (int i = 0; i < exprs.length; i++) { tags[i] = exprs[i].getName(); } return tags; } public boolean isPaintable() { return false; } public void paintValue(Graphics g, Rectangle rectangle) { } public boolean supportsCustomEditor() { return true; } public Component getCustomEditor() { return new ErrorExpressionPanel(this); } synchronized org.openide.compiler.ExternalCompiler.ErrorExpression[] getExpressions () { return (org.openide.compiler.ExternalCompiler.ErrorExpression[])list.toArray ( new org.openide.compiler.ExternalCompiler.ErrorExpression[list.size ()] ); } java.util.Collection getExpressionsVector () { return list; } } } /* * Log * 4 Gandalf 1.3 1/12/00 Ian Formanek NOI18N * 3 Gandalf 1.2 10/22/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 2 Gandalf 1.1 9/14/99 Jesse Glick Dummy wrapper class made * abstract with private constructor for style. * 1 Gandalf 1.0 9/14/99 Jaroslav Tulach * $ */